﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Clases;
using Datos;
using DevExpress.Web.ASPxEditors;
       
namespace Trade
{
    public partial class WebForm5 : System.Web.UI.Page
    {
        protected void AsignarVariable(Decimal v_sesion)
        {
            v_sesion = Convert.ToDecimal(Session["Id_Empresa"]);
        }
        
        protected void Page_Load(object sender, EventArgs e)
        {
            
            datEmpresa empresa_dat = new datEmpresa();
            clsEmpresa empresa = new clsEmpresa();
            Decimal empresa_ = Convert.ToDecimal(Session["Id_Empresa"]);

            if (!IsPostBack)
            {
                string var = Convert.ToString(Request.QueryString["prov"]);
                if (var != null)
                {
                    String[] Datos = var.Split('?');
                    string cod_enpresa = Datos[0].ToString();
                    Consultar_DatosEmpresa(Convert.ToInt32(cod_enpresa));
                }
            }
        }

        protected void Consultar_DatosEmpresa(int codigo_empresa)
        {
            datEmpresa empresa_dat = new datEmpresa();
            clsEmpresa cargar_empresa = new clsEmpresa();
            cargar_empresa = empresa_dat.ConsultarEmpresa(codigo_empresa);
            Llenar_Controles(cargar_empresa);
        }

        public bool Llenar_Controles(clsEmpresa cargar_empresa)
        {
            try
            {
                ((ASPxTextBox)nvbEmpresa.Groups[0].FindControl("txtNombreComercial")).Text = Convert.ToString(cargar_empresa.NombreEmpresa);
                txtid.Text = Convert.ToString(cargar_empresa.CodigoEmpresa);
                ((ASPxTextBox)nvbEmpresa.Groups[0].FindControl("txtContactName")).Text = Convert.ToString(cargar_empresa.Contacto);
                ((ASPxMemo)nvbEmpresa.Groups[0].FindControl("txtDescripcion")).Text = Convert.ToString(cargar_empresa.Descripcion);
                ((ASPxMemo)nvbEmpresa.Groups[0].FindControl("txtObservacion")).Text = Convert.ToString(cargar_empresa.Observacion);
                ((ASPxTextBox)nvbEmpresa.Groups[0].FindControl("txtEmail")).Text = Convert.ToString(cargar_empresa.Correo.descripcion);
                ((ASPxTextBox)nvbEmpresa.Groups[0].FindControl("txtPhone")).Text = Convert.ToString(cargar_empresa.Telefono.numero);
                ((ASPxTextBox)nvbEmpresa.Groups[0].FindControl("txtFax")).Text = Convert.ToString(cargar_empresa.Fax.numero); 
                ((ASPxTextBox)nvbEmpresa.Groups[0].FindControl("txtPhone2")).Text = Convert.ToString(cargar_empresa.Telefono2.numero);
                ((ASPxTextBox)nvbEmpresa.Groups[0].FindControl("txtMovil")).Text = Convert.ToString(cargar_empresa.Movil.numero);
                ((ASPxTextBox)nvbEmpresa.Groups[1].FindControl("txtAddress")).Text = Convert.ToString(cargar_empresa.Ubicacion2.Direccion);
                ((ASPxTextBox)nvbEmpresa.Groups[1].FindControl("txtAddress2")).Text = Convert.ToString(cargar_empresa.Ubicacion.Direccion);

                ((ASPxComboBox)nvbEmpresa.Groups[1].FindControl("ASPxComboBox1")).Value = Convert.ToString(cargar_empresa.Ubicacion.Pais);
                ((ASPxComboBox)nvbEmpresa.Groups[1].FindControl("ASPxComboBox2")).Value = Convert.ToString(cargar_empresa.Ubicacion.Ciudad);


                return true;
            }
            catch (Exception e)
            {
                Console.WriteLine("Error al llenar los controles de la Orden " + e);
                return false;
            }
        }

        protected void btnNuevo_Click(object sender, EventArgs e)
        {

            limpliar_controles();
            
        }
        protected void limpliar_controles()
        {
            txtid.Text = "";
            ((ASPxTextBox)nvbEmpresa.Groups[0].FindControl("txtNombreComercial")).Text = "";
            ((ASPxTextBox)nvbEmpresa.Groups[0].FindControl("txtContactName")).Text = "";
            ((ASPxMemo)nvbEmpresa.Groups[0].FindControl("txtDescripcion")).Text = "";
            ((ASPxMemo)nvbEmpresa.Groups[0].FindControl("txtObservacion")).Text = "";
            ((ASPxTextBox)nvbEmpresa.Groups[0].FindControl("txtEmail")).Text = "";
            ((ASPxTextBox)nvbEmpresa.Groups[0].FindControl("txtPhone")).Text = "";
            ((ASPxTextBox)nvbEmpresa.Groups[0].FindControl("txtPhone2")).Text = "";
            ((ASPxTextBox)nvbEmpresa.Groups[0].FindControl("txtMovil")).Text = "";
            ((ASPxTextBox)nvbEmpresa.Groups[0].FindControl("txtFax")).Text = "";
            ((ASPxTextBox)nvbEmpresa.Groups[1].FindControl("txtAddress")).Text = "";
            ((ASPxTextBox)nvbEmpresa.Groups[1].FindControl("txtAddress2")).Text = "";
        }

        protected void btnGrabar_Click(object sender, EventArgs e)
        {
            Llenar_Clase();
        }

        public clsEmpresa Llenar_Clase()
        {
            clsEmpresa emp = new clsEmpresa();
            datEmpresa dtemp = new datEmpresa();
            clsTelefono Telefono = new clsTelefono();
            clsTelefono Telefono2 = new clsTelefono();
            clsTelefono Movil = new clsTelefono();
            clsTelefono Fax = new clsTelefono();
            clsCorreo Correo = new clsCorreo();
            clsUbicacion Ubicacion = new clsUbicacion();
            clsUbicacion Ubicacion2 = new clsUbicacion();


            emp.CodigoEmpresa = Convert.ToDecimal(txtid.Text == "" ? "0" : txtid.Text);
            emp.Usuario = Convert.ToDecimal(Session["CodigoUsuario"]);
            emp.NombreEmpresa = ((ASPxTextBox)nvbEmpresa.Groups[0].FindControl("txtNombreComercial")).Text;
            emp.Contacto = ((ASPxTextBox)nvbEmpresa.Groups[0].FindControl("txtContactName")).Text;
            emp.Descripcion = ((ASPxMemo)nvbEmpresa.Groups[0].FindControl("txtDescripcion")).Text;
            emp.Observacion = ((ASPxMemo)nvbEmpresa.Groups[0].FindControl("txtObservacion")).Text;
            //Correos
            Correo.descripcion = ((ASPxTextBox)nvbEmpresa.Groups[0].FindControl("txtEmail")).Text;
            emp.Correo = Correo;
            //teléfonos
            Telefono.numero = ((ASPxTextBox)nvbEmpresa.Groups[0].FindControl("txtPhone")).Text;
            emp.Telefono = Telefono;
            Telefono2.numero = ((ASPxTextBox)nvbEmpresa.Groups[0].FindControl("txtPhone2")).Text;
            if ( String.Equals(Telefono2.numero,Telefono.numero))
            {
                Telefono2.numero = " ";
            }
            emp.Telefono2 = Telefono2;
            Movil.numero = ((ASPxTextBox)nvbEmpresa.Groups[0].FindControl("txtMovil")).Text;
            emp.Movil = Movil;
            Fax.numero = ((ASPxTextBox)nvbEmpresa.Groups[0].FindControl("txtFax")).Text;
            emp.Fax = Fax;
            //Ubicacion
            Ubicacion.Direccion = ((ASPxTextBox)nvbEmpresa.Groups[1].FindControl("txtAddress")).Text;
            Ubicacion.Pais = Convert.ToString(((ASPxComboBox)nvbEmpresa.Groups[1].FindControl("ASPxComboBox1")).Value);
            Ubicacion.Ciudad = Convert.ToInt32(((ASPxComboBox)nvbEmpresa.Groups[1].FindControl("ASPxComboBox2")).Value);
            emp.Ubicacion = Ubicacion;
            Ubicacion2.Direccion = ((ASPxTextBox)nvbEmpresa.Groups[1].FindControl("txtAddress2")).Text;
            Ubicacion2.Pais = Convert.ToString(((ASPxComboBox)nvbEmpresa.Groups[1].FindControl("ASPxComboBox1")).Value);
            Ubicacion2.Ciudad = Convert.ToInt32(((ASPxComboBox)nvbEmpresa.Groups[1].FindControl("ASPxComboBox2")).Value);
            if (String.Equals(Ubicacion.Direccion, Ubicacion2.Direccion))
            {
                Ubicacion2.Direccion = " ";
            }
            emp.Ubicacion2 = Ubicacion2;

            datEmpresa datemp = new datEmpresa();
            var grabar = Session["Id_Empresa"];
            grabar = null;
            if (txtid.Text=="")
            {
                string idempresa = "";
                if (datemp.Grabar_Empresa_Mantenimiento(emp,ref idempresa))
                {
                    lblExitoso.Visible = true;
                    txtid.Text = idempresa;
                    limpliar_controles();
                }
                else
                {
                    lblError.Visible = true;
                }

            }
            else
            {
                if (datemp.Modificar_Empresa_Mantenimiento(emp))
                {
                    lblExitoso.Visible = true;
                    clsTelefono cls = new clsTelefono();
                    cls.numero = Telefono.numero;
                    cls.Tipo = 1;
                    datemp.Modificar_Empresa_Telefono(cls, emp);
                    //cls = new clsTelefono();
                    //cls.numero = Telefono2.numero;
                    //cls.Tipo = 1;
                    datemp.Modificar_Empresa_Telefono(cls, emp);
                    cls = new clsTelefono();
                    cls.numero = Fax.numero;
                    cls.Tipo = 2;
                    datemp.Modificar_Empresa_Telefono(cls, emp);
                    cls = new clsTelefono();
                    cls.numero = Movil.numero;
                    cls.Tipo = 3;
                    datemp.Modificar_Empresa_Telefono(cls, emp);
                }
                else
                {
                    lblError.Visible = true;
                }
                
            }
            return emp;

        }

        //protected void Source_Empresa_Selecting(object sender, EntityDataSourceSelectingEventArgs e)
        //{
        //    //Validar la busqueda en el select segun usuario activo
        //    Source_Empresa.WhereParameters.Clear();
        //    Source_Empresa.AutoGenerateWhereClause = true;
        //    Source_Empresa.WhereParameters.Add("usuario", TypeCode.Decimal, Session["CodigoUsuario"].ToString());
        //}

        protected void btnBuscar_Click(object sender, EventArgs e)
        {
            Pop_Empresas.ShowOnPageLoad = true;
        }

        protected void btnBorrar_Click(object sender, EventArgs e)
        {
            clsEmpresa cls = new clsEmpresa();
            cls.CodigoEmpresa = Convert.ToDecimal(txtid.Text);
            datEmpresa dat= new datEmpresa();
            if (dat.Eliminar_Empresa_Logico(cls))
                btnNuevo_Click(sender, e);
        }

        protected void ASPxComboBox1_TextChanged(object sender, EventArgs e)
        {
            string Pais = Convert.ToString(((ASPxComboBox)nvbEmpresa.Groups[1].FindControl("ASPxComboBox1")).Value);

            //llenar combo
        }

        protected void ASPxComboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            string Pais = Convert.ToString(((ASPxComboBox)nvbEmpresa.Groups[1].FindControl("ASPxComboBox1")).Value);

        }
        public void combo(string e) 
        { 
        
        
        }
             
        protected void ASPxComboBox1_ValueChanged(object sender, EventArgs e)
        {
            string Pais = Convert.ToString(((ASPxComboBox)nvbEmpresa.Groups[1].FindControl("ASPxComboBox1")).Value);

        }
    }
}